In recent years, a technique referred to as OpenFlow has been proposed (see NPLs 1 and 2). OpenFlow recognizes communications as end-to-end flows and performs path control, failure recovery, load balancing, and optimization on a per-flow basis. Each OpenFlow switch according to NPL 2 has a secure channel for communication with an OpenFlow controller and operates according to a flow table suitably added or rewritten by the OpenFlow controller. In the flow table, a set of the following three is defined for each flow: match conditions (Match Fields) against which a packet header is matched; flow statistical information (Counters); and Instructions that define a processing content(s) (see section 4.1 “Flow Table” in NPL 2).
For example, when an OpenFlow switch receives a packet, the OpenFlow switch searches the flow table for an entry having a match condition (see section 4.3 “Match Fields” in NPL 2) that matches header information of the received packet. If, as a result of the search, the OpenFlow switch finds an entry matching the received packet, the OpenFlow switch updates the flow statistical information (Counters) and processes the received packet on the basis of a processing content(s) (packet transmission, flooding, dropping, etc. from a specified port) written in the Instructions field of the entry. If, as a result of the search, the OpenFlow switch does not find an entry matching the received packet, the OpenFlow switch transmits an entry setting request to the OpenFlow controller via the secure channel. Namely, the OpenFlow switch requests the OpenFlow controller to transmit control information for processing the received packet (Packet-In message). The OpenFlow switch receives a flow entry defining a processing content(s) and updates the flow table. In this way, by using an entry stored in the flow table as control information, the OpenFlow switch performs packet forwarding.
In addition, PTL 1 discloses a method for reducing the load of a path control apparatus that corresponds to the OpenFlow controller by setting different time-out values in the above flow entries for each section of a packet communication path.